As is known in the art, computer systems which process and store large amounts of data typically include one or more applications (e.g., server applications) in communication with a shared data storage system in which the data is stored. The data storage system (or “storage array”) may include one or more storage devices, usually of a fairly robust nature and useful for storage spanning various temporal requirements, e.g., hard disk drives (HDDs). The applications perform their respective operations using the storage system. Storage systems typically include an array (“storage array”) of a plurality of storage devices with on-board intelligent and communications electronics and software. Within a storage system, storage devices (or partitions therein) are commonly identified using logical unit numbers (LUNs).
To improve data read performance, it is known to use a caching system (or “caching tier”) positioned between the applications and the storage array. The caching system may include large-capacity Flash media devices. Applications issue read and write (i.e., I/O) operations to the caching tier which, in turn, issues forwarded read and write operations to the storage array based upon the cache state and cache strategy. According to one cache strategy, data is “promoted” from a storage device in the storage array (referred to herein as a “source LUN”) to the cache in the case of a read miss. According to another cache strategy, writes issued from the application result in data being written both to the source LUN and to the cache. To improve performance, cache promotions may be performed asynchronously.